<?php

/**
 * API助手
 * [
 * 建议使用composer载入，全局可用:
 * "autoload": {
 * "psr-4": {
 * "App\\": "app/"
 * },
 * "files": [
 * "app/Helper/ApiHelper.php"
 * ]
 * },
 * ]
 * Class ApiHelper
 * @package App\Helper
 * @author Akun 898110597@qq.com
 * @copyright http://klog.com.cn
 */
class ApiConfig
{
    /** 请求成功状态码 */
    const OUT_PUT_SUCCESS_CODE = 0;
    /** 请求失败状态码 */
    const OUT_PUT_ERROR_CODE = 1;
    /** 操作成功状态码 */
    const ACTION_SUCCESS_CODE = 2;
    /** 操作失败状态码 */
    const ACTION_ERROR_CODE = 3;

    /** 这里的定义是针对移植的时候，某些系统定义的响应节点不一致 */
    const STATUS_CODE_KEY = 'code';
    const STATUS_MSG_KEY = 'msg';
    const STATUS_DATA_KEY = 'data';
    const STATUS_COUNT_KEY = 'ext';
}

/**
 * 一般列表请求成功
 * @param array $data
 * @param string $msg
 * @param int $code
 * @return array
 */
function output_success($data = [], $ext = '', $msg = '获取成功', $code = ApiConfig::OUT_PUT_SUCCESS_CODE)
{
    return [ApiConfig::STATUS_CODE_KEY => $code, ApiConfig::STATUS_MSG_KEY => $msg, ApiConfig::STATUS_COUNT_KEY => $ext, ApiConfig::STATUS_DATA_KEY => $data];
}

/**
 * 一般列表请求失败
 * @param string $msg
 * @param array $data
 * @param int $code
 * @return array
 */
function output_error($msg = '获取失败', $data = [], $code = ApiConfig::OUT_PUT_ERROR_CODE)
{
    return [ApiConfig::STATUS_CODE_KEY => $code, ApiConfig::STATUS_MSG_KEY => $msg, ApiConfig::STATUS_DATA_KEY => $data];
}


/**
 * 操作成功
 * @param String $msg
 * @param array $data
 * @param int $code
 * @return array
 */
function action_success($msg = '操作成功', $data = [], $code = ApiConfig::ACTION_SUCCESS_CODE)
{
    return [ApiConfig::STATUS_CODE_KEY => $code, ApiConfig::STATUS_MSG_KEY => $msg, ApiConfig::STATUS_DATA_KEY => $data];
}

/**
 * 操作失败
 * @param String $msg
 * @param array $data
 * @param int $code
 * @return array
 */
function action_error($msg = '操作失败', $data = [], $code = ApiConfig::ACTION_ERROR_CODE)
{
    return [ApiConfig::STATUS_CODE_KEY => $code, ApiConfig::STATUS_MSG_KEY => $msg, ApiConfig::STATUS_DATA_KEY => $data];
}

/**
 * 自定义错误
 * @param String $msg
 * @param array $data
 * @param int $code
 * @return array
 */
function return_code($code, $msg = '失败', $data = [])
{
    return [ApiConfig::STATUS_CODE_KEY => $code, ApiConfig::STATUS_MSG_KEY => $msg, ApiConfig::STATUS_DATA_KEY => $data];
}
